package com.szrt.java.day20170103.demo06;

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

import org.junit.Test;

/**
 * 1:异常的整体体系结构--家谱
 * 
 * 不管是运行时异常 还是编译异常我们有2种处理方法
 * 1:把狼打死   try catch finally   finally可有可以无    高级
 * 2:自己不处理，叫别人来打死    throws                  新手
 *   让调用者来处理这个异常
 *   
 * 面试：你们公司是如何处理异常的
 *     1:架构师将所有的异常统一处理，这时候开发者自己不能对异常进行处理，只能抛出异常   好  (框架组专门写一般的程序员考虑不到或者考虑不周全的问题) 华为对于异常处理规范 40多条
 *     2:如果没有统一的异常处理机制，那么在任何地方都要进行try catch finally   不好
 * @author zsrt
 *
 */
public class ExceptionTest {

	@Test
	public  void  method01(){
		//运行时异常 运行时异常在编译的时候可以不进行显示的处理
		int a=0;
		//编辑异常
		InputStream is=null;
		try {
			try {
				a = 10/0;
			} catch (Exception e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
			is = new FileInputStream("aa.txt");
		}catch (FileNotFoundException e) {
			e.printStackTrace();
		}finally{
			try {
				if(is !=null){
					is.close();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}
		System.out.println(a);
	}
	
	@Test
	public void method02(){
		
		try {
			int jg = div(10,0);
			System.out.println(jg);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
	}
	
	public int div(int x,int y) throws Exception{
		return x/y;
	}
	
}
